package com.samon.netty.编解码;
/*
               _.---..._
           ./^         ^-._
         ./^C===.         ^\.   /\
        .|'     \\        _ ^|.^.|
   ___.--'_     ( )  .      ./ /||
  /.---^T\      ,     |     / /|||
 C'   ._`|  ._ /  __,-/    / /-,||
      \ \/    ;  /O  / _    |) )|,
       i \./^O\./_,-^/^    ,;-^,'
        \ |`--/ ..-^^      |_-^
         `|  \^-           /|:
          i.  .--         / '|.
           i   =='       /'  |\._
         _./`._        //    |.  ^-ooo.._
  _.oo../'  |  ^-.__./X/   . `|    | d
				 比克叔叔保佑
				 代码无BUG!
 */

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ReplayingDecoder;

import java.util.List;

/**
 * 自定义int解码器, Void表示不需要状态管理
 * 
 * @author Mr.Wu on 2018/9/15
 */
public class ToIntegerDecoder2 extends ReplayingDecoder<Void> {

	/**
	 * 解码
	 * 
	 * @param ctx
	 * @param in 类型是 ReplayingDecoderByteBuf, 源码367行
	 * @param out
	 */
	@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
		
		// 从入站 ByteBuf 中读取一个int, 并将其添加到解码消息的 List 中
		out.add(in.readInt());
	}
}
